/**
 * 高次方数的尾数。
 * 求13的13次方的最后三位数。
 *
 * 由于计算机所表达的整数范围有限。不可以直接使用13的立方计算。利用乘法规律，最后三位的值仅和乘数与被乘数的后三位有关，
 *
 */

#include <stdio.h>

int main()
{
    int x, y, last = 1;
    printf("Input X and Y (X ^ Y): ");
    scanf("%d^%d", &x, &y);
    for (int i = 0; i < y; i++)
    {
        last = last * x % 1000; // 对1000去模，保留最后三位
    }
    printf("The last 3 digits of %d^%d is : %d", x, y, last % 1000);
}